from multiprocessing import Pool
import time
import os


def task(name):
    print(f'子进程的PID:{os.getpid()},执行任务---task---{name}')
    time.sleep(1)


if __name__ == '__main__':
    start = time.time()
    print('父进程开始执行')
    # 创建进程池
    p = Pool(3)  # 进程池里 最大进程的个数

    for i in range(10):
        # 以非阻塞的方式进行
        # p.apply_async(func=task, args=(i,))
        # 以阻塞的方式进行
        p.apply(func=task, args=(i,))
    p.close()  # 关闭进程池 不再接受新任务
    p.join()  # 阻塞父进程

    print('父进程结束执行')
    print(time.time() - start)
